/*
 * @Description: 
 * @Author: Aroma
 * @Date: 2024-09-18 20:11:58
 * @LastEditors: Aroma
 * @LastEditTime: 2024-09-18 20:20:01
 * @别瞎看: 你个无脑牛马
 */
// 定义一个抽象的交通工具类
abstract class Vehicle {
    protected String brand; // 品牌

    public Vehicle(String brand) {
        this.brand = brand;
    }

    // 交通工具的共同行为：行驶
    public abstract void drive();

    public String getBread(){
        return brand;
    }
}

// 定义一个Car类，继承自Vehicle类
class Car extends Vehicle {
    public Car(String brand) {
        super(brand);
    }

    // 实现drive方法
    @Override
    public void drive() {
        System.out.println("开始驾驶 " + brand + " 汽车。");
    }
}

// 定义一个Person类
class Person {
    private String name;
    private Vehicle vehicle; // 人可能拥有的交通工具

    public Person(String name) {
        this.name = name;
    }

    // 设置交通工具
    public void setVehicle(Vehicle vehicle) {
        this.vehicle = vehicle;
    }

    // 开车去公司的方法
    public void driveToCompany() {
        if (vehicle != null) {
            System.out.println(name + " 正在驾驶车辆去公司...");
            vehicle.drive(); // 调用交通工具的drive方法
            System.out.println(name + " 已到达公司。");
        } else {
            System.out.println(name + " 没有交通工具，无法去公司。");
        }
    }

    public String getName(){
        return name;
    }
    public void setName(){
        this.name=name;
    }
    
    public Vehicle getVehicle(){
        return vehicle;
    }
}

// 主类，用于测试
public class Zhangsan {
    public static void main(String[] args) {
        Person zhangSan = new Person("张三");
        Car car = new Car("宝马");
        zhangSan.setVehicle(car);

        zhangSan.driveToCompany(); // 调用方法，模拟张三开车去公司的过程
    }
}